#ifndef SERIAL_PROTOCOL_H_INCLUDED
#define SERIAL_PROTOCOL_H_INCLUDED

typedef unsigned char u8;
#define READ 0x00
#define WRITE 0x01
#define AUTH_KEYA 0x02
#define AUTH_KEYB 0x03
#define READ_ID 0x05

#define STATUS_OK 0

// 协议帧定义
typedef struct {
    u8 head;
    u8 direction;
    u8 tail;
    u8 opt;
    u8 length;
    u8 addr;
    u8 data[32];
}TranData;

// 对两个字符数组进行内容进行拷贝
void charncpy(u8 *dst,u8 *src,u8 len);

// 协议帧初始化
TranData* initTranData(u8 direction,u8 opt,u8 addr,u8 *info,u8 length);

// 格式化显示协议数据
void showTranData(TranData* data);

// 序列化协议帧
u8* serialize(TranData *data);

// 反序列化协议帧
TranData* deserialize(u8 *data);


#endif // SERIAL_PROTOCOL_H_INCLUDED
